// let arr1 = ['C1', 'C2', 'D1', 'D2', 'B1', 'B2', 'A1', 'A2'];

// let arr2 = ['A', 'B', 'C', 'D'];

// let arr = arr1.concat(arr2.map((v) => v + 'xx'));

// arr = arr
//   .sort((a, b) => a.localeCompare(b))
//   .map((v) => {
//     return v.replace('xx', '');
//   });

// let n = null;
// for (let i = 0; i < arr2.length; i++) {
//   const item2 = arr2[i];

//   for (let j = 0; j < arr1.length; j++) {
//     const item1 = arr1[j];
//     if(item1.includes(item2)){
//       n = j
//     }
//   }

//   arr1.splice(n+1,0,item2)

// }

// 2--------------------------------------------------------------

// for (var i = 0; i < 10; i++) {
//   (function (i) {
//     setTimeout(() => {
//       console.log(i);
//     }, 1000);
//   })(i);
//   if (i === 9) {
//   }
// }

// for (var i = 0; i < 10; i++) {
//   setTimeout(((i) => () => console.log(i))(i), 1000);
// }
// let fn = i =>{
//   console.log(i)
// }

// for (var i = 0; i < 10; i++) {
//   setTimeout(fn.bind(null,i), 1000);
// }

//  ------------------------------------3--------------------------------------

// var b = 6;
// (function b(){
//   let b = 10
//   console.log(b)
// })()

// console.log(b)

// -------------------------------------4----------------------

// var a = {
//   i: 1,
//   valueOf: function () {
//     return this.i++;
//   }
// };
// if (a == 1 && a == 2 && a == 3) {
//   console.log(1);
// }

// let a = [1,2,3]
// a.toString = a.shift

// if (a == 1 && a == 2 && a == 3) {
//   console.log(1);
// }

// Object.defineProperty(window, 'a', {
//   get: function () {
//      this.value ? this.value++ :this.value = 1
//      return this.value
//   }
// });

// if (a == 1 && a == 2 && a == 3) {
//   console.log('Ok');
// }

// -----------------------5-----------------------------------

let obj = {
  2: 3,
  3: 4,
  length: 2,
  push: function (val) {
    this[this.length] = val;
    return this.length++;
  }
};

obj.push(1);
obj.push(2);
console.log(obj);
